package com.molichuxing.services.business.service;

import com.molichuxing.framework.exception.BizException;
import com.molichuxing.services.business.dto.request.create.VehicleCreateBizDto;
import com.molichuxing.services.business.dto.request.modify.DeliveryModifyBizDto;
import com.molichuxing.services.business.dto.request.modify.ReturnCarModifyBizDto;
import com.molichuxing.services.business.dto.response.CarBizDto;
import com.molichuxing.services.business.dto.response.CarDetailBizDto;
import com.molichuxing.services.business.dto.response.CarPendStatisticsDto;
import com.molichuxing.services.infrastructure.dto.response.CarDto;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 车辆组合服务类
 * </p>
 *
 * @author
 * @since 2019-07-29
 */
public interface CarBizService {

	/**
	 * 根据车辆id获取车辆详细信息
	 * 
	 * @param carId
	 * @return
	 */
	public CarDetailBizDto getCarDetail(Integer carId);

	/**
	 * 创建车辆信息
	 * 
	 * @param createBizDto
	 * @return
	 */
	public Integer createBizCar(VehicleCreateBizDto createBizDto) throws Exception;

	/**
	 * 提车修改车辆状态、保存车辆交接单信息
	 * 
	 * @param modifyDto
	 * @return
	 */
	public Boolean modifyDeliveryCar(DeliveryModifyBizDto modifyDto) throws BizException;


	/**
	 * 车辆待处理统计
	 * @return
	 */
	public CarPendStatisticsDto getCarPendStatisticsDto();

	/**
	 * 还车修改车辆状态、保存车辆交接单信息、新增检验信息
	 * 
	 * @param modifyBizDto
	 * @return
	 */
	public Boolean modifyReturnCar(ReturnCarModifyBizDto modifyBizDto);

	/**
	 * 车辆列表导出
	 *
	 * @param selectParams
	 * @return
	 */
	public List<CarBizDto> getCarListDownload(Map<String, Object> selectParams);

	public long getCarListDownloadCount(Map<String, Object> selectParams);
}
